import axios from 'axios'

// 创建axios实例
const request = axios.create({
    baseURL: "http://localhost:8101/api", // 根据环境变量配置API基础路径
    timeout: 10000 // 请求超时时间
})

// 请求拦截器
request.interceptors.request.use(
    config => {
        // 可以在这里添加token等请求头信息
        return config
    },
    error => {
        return Promise.reject(error)
    }
)

// 响应拦截器
request.interceptors.response.use(
    response => {
        // 检查是否为二进制响应 (Excel导出)
        const isBlob = response.config.responseType === 'blob'
            || response.headers?.['content-type']?.includes('application/vnd.openxmlformats')
            || response.headers?.['content-type']?.includes('application/octet-stream');

        // 1. 直接返回二进制响应
        if (isBlob) {
            return {
                data: response.data,   // 二进制数据
                headers: response.headers, // 响应头
                status: response.status
            };
        }
        // 2. 处理标准JSON响应
        if (response.status === 200&& response.data.code === 200) {
            return response.data
        } else {
            return Promise.reject(new Error(response.data.message || 'Error'))
        }
    },
    error => {
        return Promise.reject(error)
    }
)

export default request
